package com.wobito.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wobito.pojo.bean.BorrowLog;
import com.wobito.pojo.bean.ReturnLog;
import com.wobito.pojo.dto.api.GetBorrowReturnLogDTO;
import com.wobito.pojo.dto.log.BorrowLogByBookDTO;
import com.wobito.pojo.dto.log.BorrowLogByPersonDTO;
import com.wobito.pojo.dto.log.BorrowLogDTO;
import com.wobito.pojo.vo.log.BorrowReturnLogVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lambyang
 * @since 2024-08-26
 */
public interface IBorrowReturnLogService extends IService<ReturnLog> {

    /**
     * 根据书籍ID查询借阅日志
     * @param bookId
     * @return
     */
    List<BorrowLogByBookDTO> selectBookBorrowByBookId(Long bookId);

    /**
     * 条件查询
     * @param bookId
     * @return
     */
    List<GetBorrowReturnLogDTO> selectBookLogList(Long bookId);

    /**
     * 根据借阅人ID查询借阅日志
     * @param personId
     * @return
     */
    List<BorrowLogByPersonDTO> selectBookBorrowReturnByPersonId(Long personId);

    /**
     * 根据条件查询借阅归还日志
     * @param borrowReturnLogVO
     * @return
     */
    List<BorrowLogDTO> selectBorrowReturnLogList(BorrowReturnLogVO borrowReturnLogVO);

    /**
     * 根据借阅人ID查询借阅归还日志
     * @param personId
     * @return
     */
    List<BorrowLogByPersonDTO> selectBorrowReturnLogById(Long personId);

    /**
     * 添加借阅日志
     * @param borrowLog
     * @return
     */
    int insertBorrowLog(BorrowLog borrowLog);

    /**
     * 添加归还日志
     * @param returnLog
     * @return
     */
    int insertReturnLog(ReturnLog returnLog);
}
